﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DTO
{
    public class HeartbeatOutput
    {
        public string cmd { get; set; } = string.Empty;
        public string sn { get; set; } = string.Empty;
        public string timestamp { get; set; } = string.Empty;
    }
    public class AddUserDao
    {
        public string cmd { get; set; } = string.Empty;
        public string from { get; set; } = string.Empty;
        public string to { get; set; } = string.Empty;
        public string extra { get; set; } = string.Empty;
        public dynamic data { get; set; }
    }
    public class userData
    {
        public string cmd { get; set; } = string.Empty;
        public string user_id { get; set; } = string.Empty;
        public string name { get; set; } = string.Empty;
        public string tts_name { get; set; } = string.Empty;
        public string face_template { get; set; } = string.Empty;
        public string effect_time { get; set; } = string.Empty;
        public string pass_rule_id { get; set; } = string.Empty;
        public string id_valid { get; set; } = string.Empty;
        public string Ic { get; set; } = string.Empty;
        public int confidence_level { get; set; }
        public string phone { get; set; } = string.Empty;
        public string mode { get; set; } = string.Empty;
        public List<valid_cycle> valid_cycle { get; set; } = new List<valid_cycle>();
        public List<fp> fp { get; set; } = new List<fp>();
        public List<iris> iris { get; set; } = new List<iris>();

    }
    public class getUserDetailsData
    {
        public string cmd { get; set; } = string.Empty;
        public int value { get; set; }
        public string user_id { get; set; } = string.Empty;
        public bool is_response_photo { get; set; }
    }
    public class delUserData
    {
        public string cmd { get; set; } = "delUser";
        public string user_id { get; set; } = string.Empty;
        public int user_type { get; set; } = 0;
    }
    public class iris
    {
        public string iris_feature { get; set; } = string.Empty;
        public string iris_remark { get; set; } = string.Empty;
        public string fusion_feature { get; set; } = string.Empty;
    }
    public class fp
    {
        public string id { get; set; } = string.Empty;
        public string data { get; set; } = string.Empty;
        public string name { get; set; }
    }
    public class valid_cycle
    {
        public string start_time { get; set; } = string.Empty;
        public string end_time { get; set; } = string.Empty;
    }
    public class setVisitorApplyData
    {
        public string cmd { get; set; } = string.Empty;
        public int value { get; set; } = 0;
        public string photo { get; set; } = string.Empty;
        public string url { get; set; } = string.Empty;
    }

    public class delPassRuleData
    {
        public string cmd { get; set; } = string.Empty;
        public int is_delete_all { get; set; }
        public List<int> rule_ids { get; set; } = new List<int>();
    }
    public class getUserDetailsRet
    {
        public string cmd { get; set; } = string.Empty;
        public int code { get; set; }
        public detailInfo details { get; set; }
    }
    public class detailInfo
    {
        public string user_id { get; set; } = string.Empty;
        public string name { get; set; } = string.Empty;
        public string phone { get; set; } = string.Empty;
        public string id_card { get; set; } = string.Empty;
        public string ic_card { get; set; } = string.Empty;
        public string validity_period { get; set; } = string.Empty;
        public int confidence_level { get; set; }
        public string photo { get; set; } = string.Empty;
        public string inf_photo { get; set; } = string.Empty;
        public string user_type { get; set; } = string.Empty;
        public List<valid_cycle> valid_cycle { get; set; } = null;
        public int pass_rule_id { get; set; }

    }

    public class addPassRuleData
    {
        public string cmd { get; set; } = string.Empty;
        public List<RuleData> rule { get; set; } = new List<RuleData>();
    }
    public class RuleData
    {
        public string id { get; set; } = string.Empty;
        public string rule_name { get; set; } = string.Empty;
        public int version { get; set; } = 0;
        public List<Weekday> weekday { get; set; } = new List<Weekday>();
        public List<StartAndEnd> passables { get; set; } = new List<StartAndEnd>();
        public List<ImpassableInfo> impassable { get; set; } = new List<ImpassableInfo>();
    }
    public class addPassRuleRetData
    {
        public string cmd { get; set; } = string.Empty;
        public int rule_id { get; set; } = 0;
    }
    public class setVisitorApplyValueRetData
    {
        public string cmd { get; set; } = string.Empty;
        public int code { get; set; } = 0;
        public string msg { get; set; } = string.Empty;
    }
    public class getPassRuleByUserIdData
    {
        public string cmd { get; set; } = string.Empty;
        public string user_id { get; set; } = string.Empty;
    }
    public class getPassRuleByUserIdRetData
    {
        public string cmd { get; set; } = string.Empty;
        public string user_id { get; set; } = string.Empty;
        public List<RuleData> rule { get; set; } = new List<RuleData>();
    }
}
